module.exports = app =>{

  let { validator } = app;

  // 校验用户名是否正确
  validator.addRule('username', (rule, value)=>{
    if (!/^[a-zA-Z0-9_]{4,16}$/.test(value)) {
      return '用户名包含 字母数字或下划线，长度4~16';
    }
  });

  // 校验密码是否正确
  validator.addRule('password', (rule, value)=>{
    if (!/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{5,20}$/.test(value)) {
      return '密码至少包含 数字和英文，长度6~20';
    }
  });

  // 校验验证码是否正确
  validator.addRule('captcha', async (rule, value)=>{
    let result = await app.mysql.query('SELECT * FROM `captcha` WHERE `code`=?', [value.toLowerCase()])
    if (!result.length) {
      return '验证码不正确';
    }
    if (result[0].is_use || result[0].expire < Date.now()) {
      return '验证码已过期'
    }
  });
};